home *** CD-ROM | disk | FTP | other *** search
/ PC Advisor 2011 May / PC Advisor 190 E.iso / pc / ESSENTIALS / VLC Media Player 1.1 / vlc-1.1.5-win32.exe / lua / playlist / mpora.lua < prev    next >
Encoding:
Text File  |  2010-11-13  |  2.5 KB  |  76 lines

  1. --[[
  2.  $Id$
  3.  
  4.  Copyright ┬⌐ 2009 the VideoLAN team
  5.  
  6.  Authors: Konstantin Pavlov (thresh@videolan.org)
  7.  
  8.  This program is free software; you can redistribute it and/or modify
  9.  it under the terms of the GNU General Public License as published by
  10.  the Free Software Foundation; either version 2 of the License, or
  11.  (at your option) any later version.
  12.  
  13.  This program is distributed in the hope that it will be useful,
  14.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  GNU General Public License for more details.
  17.  
  18.  You should have received a copy of the GNU General Public License
  19.  along with this program; if not, write to the Free Software
  20.  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  21. --]]
  22.  
  23. -- Probe function.
  24. function probe()
  25.     return vlc.access == "http"
  26.         and string.match( vlc.path, "video.mpora.com/watch/" )
  27. end
  28.  
  29. -- Parse function.
  30. function parse()
  31.     p = {}
  32.     while true do
  33.         -- Try to find the video's title
  34.         line = vlc.readline()
  35.         if not line then break end
  36.         if string.match( line, "meta name=\"title\"" ) then
  37.             _,_,name = string.find( line, "content=\"(.*)\" />" )
  38.         end
  39.         if string.match( line, "image_src" ) then
  40.             _,_,arturl = string.find( line, "image_src\" href=\"(.*)\" />" )
  41.         end
  42.  
  43.         if string.match( line, "filmID" ) then
  44.             _,_,video = string.find( line, "var filmID = \'(.*)\';")
  45.         end
  46.  
  47.     end
  48.  
  49.     if not name or not arturl or not video then return nil end
  50.  
  51.     -- Try and get URL for SD video.
  52.     sd = vlc.stream("http://api.mpora.com/tv/player/playlist/vid/"..video.."/")
  53.     if not sd then return nil end
  54.     page = sd:read( 65653 )
  55.     sdurl = string.match( page, "url=\"(.*)\" />")
  56.     page = nil
  57.  
  58.     table.insert( p, { path = sdurl; name = name; arturl = arturl; } )
  59.  
  60.     -- Try and check if HD video is available.
  61.     checkhd = vlc.stream("http://api.mpora.com/tv/player/load/vid/"..video.."/platform/video/domain/video.mpora.com/" )
  62.     if not checkhd then return nil end
  63.     page = checkhd:read( 65653 )
  64.     hashd = tonumber( string.match( page, "<has_hd>(%d)</has_hd>" ) )
  65.     page = nil
  66.  
  67.     if hashd then
  68.         hd = vlc.stream("http://api.mpora.com/tv/player/playlist/vid/"..video.."/hd/true/")
  69.         page = hd:read( 65653 )
  70.         hdurl = string.match( page, "url=\"(.*)\" />")
  71.         table.insert( p, { path = hdurl; name = name.." (HD)"; arturl = arturl } )
  72.     end
  73.  
  74.     return p
  75. end
  76.